package controllers;

import java.util.List;

import play.mvc.Controller;

import models.Cliente;
import models.DadosBancarios;
import models.Endereco;
import models.Funcionario;
import Persistencia.Exception.DAOException;
import controllers.BusinessDelegate.BusinessDelagate;

public class FuncionarioController extends Controller{
	
	public static void index(){
		String titulo ="Modulo Funcionário";
		render(titulo);
	}
	
	public static void cadastroFuncionario(){
		String titulo = "Cadastro de Funcionario";
		render(titulo);
	}
	
	public static void novoFuncionario(String [] func){
		String titulo = "Seja Bem Vindo";
		BusinessDelagate business = BusinessDelagate.getInstance();
		//String nome, String cpf, String matricula, String login,String senha, int funcao
		Funcionario f = new Funcionario(func[0], func[1], func[2], func[3], func[4], Integer.parseInt(func[6]));
		try {
			business.cadastrarNovoFuncionario(f);
			render(titulo);
		} catch (DAOException ex) {
			error(ex);
		}
		
	}
	
	public static void listarFuncionarios(){
		String titulo = "Lista de Funcionarios";
		BusinessDelagate business = BusinessDelagate.getInstance();
		List<Funcionario> funcs = null;
		try {
			funcs = business.getAllFuncionarios();
			render(titulo,funcs);
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void buscarFuncionario(){
		String titulo = "Busca de Funcionario";
		render(titulo);
	}

	public static void gerenciarFuncionario(String cpf){
		String titulo = "Gerenciar Funcionario";
		BusinessDelagate business = BusinessDelagate.getInstance();
		try {
			Funcionario f = business.getFuncionarioByCPF(cpf);
			render(titulo,f);
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void atualizarFuncionario(String [] func){
		BusinessDelagate business = BusinessDelagate.getInstance();
		//String nome, String cpf, String matricula, String login,String senha, int funcao
		Funcionario f = business.getFuncionarioAtual();
		f.setNome(func[1]);
		f.setCpf(func[2]);
		f.setMatricula(func[3]);
		f.setLogin(func[4]);
		f.setFuncao(Integer.parseInt(func[5]));
		try {
			business.atualizarFuncionario(f);
			Application.notificacao("Dados do cliente atualizados com sucesso!");
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void removerFuncionario(){
		BusinessDelagate business = BusinessDelagate.getInstance();
		Funcionario f = business.getFuncionarioAtual();
		try {
			business.removerFuncionario(f);
			Application.notificacao("Cliente removido com sucesso!");
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void notificacao(String mensagem){
    	render(mensagem);
    }
}
